#version 330

// 输入从顶点着色器来
in vec2 fragTexCoord;
in vec4 fragColor;

// 输入纹理
uniform sampler2D texture0;
uniform vec4 colDiffuse;

// 统一变量
uniform float time;        // 时间用于动画
uniform float amplitude;   // 波动幅度
uniform float frequency;   // 波动频率

// 输出颜色
out vec4 finalColor;

void main()
{
    // 创建波动效果
    vec2 waveCoord = fragTexCoord;
    waveCoord.x += sin(fragTexCoord.y * frequency + time) * amplitude;
    
    // 采样纹理
    vec4 texelColor = texture(texture0, waveCoord);
    
    // 最终颜色
    finalColor = texelColor * colDiffuse * fragColor;
}